home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1984-04-29 | 19.4 KB | 446 lines
10 CLEAR,,1200 20 DIM TIK$(100):DIM NAM$(100):DIM BUY(100) :DIM CURPR(100) : DIM SALESH(100) :DIM EPS(100): DIM NUMSH(100):DIM BVSH(100):DIM TEMPCURPR(100) 30 DIM O1(100) :DIM O2(100) : DIM O3(100) :DIM O4(100) 40 DIM W1(100):DIM W2(100):DIM W3(100):DIM W4(100):DIM W5(100):DIM PEAVG(100) 50 DIM W6(100):DIM W7(100):DIM W8(100):DIM W9(100):DIM WA(100):DIM MOVAVG(100) 60 DIM V1(100):DIM V2(100):DIM V3(100):DIM V4(100):DIM TEMPCURVOL(100):DIM CURVOL(100):DIM VOLAVG(100):DIM PERATIO(100) 70 DIM TIMELY(100):DIM SAFE(100):DIM YEARHI(100):DIM YEARLO(100) 80 DIM COUNT1(100):DIM BUYCOM(100):DIM SELCOM(100):DIM BRKEVEN(100):DIM DIVSH(100):DIM TOTCOM(100):DIM PCTCHG(100) 90 CLOSE:KEY OFF:CLS:COLOR 7,0 100 LOCATE 3,61:PRINT"tm":LOCATE 4,16:PRINT STRING$(15,205)" H o m e M a d e "STRING$(15,205) 110 LOCATE 7,29:PRINT"User Produced Software":PRINT TAB(29) STRING$(22,196):PRINT 120 LOCATE 9,32:COLOR 0,5:PRINT"<UNK! {FEFE}> StockTrack <UNK! {FEFE}>":COLOR 7,0 130 LOCATE 13,31:PRINT"901 West Pine #17B" 140 LOCATE 14,29:PRINT"Hattiesburg, MS 39401" 150 LOCATE 17,13:PRINT"If you use and value StockTrack a nominal contribution" 160 LOCATE 18,18:PRINT"($35 is suggested) would be much appreciated." 170 LOCATE 20,8:PRINT STRING$(64,205):LOCATE 21,33:PRINT"Copyright (c) 1984 Frederick Barthelme 180 LOCATE 20,35:PRINT" Rev: 2.8 " 190 '============================ SET THE DATE & TIME ======================== 200 IF RIGHT$(DATE$,2)="84" THEN 300 210 LOCATE 25,61:PRINT DATE$;" ";TIME$ 220 LOCATE 25,61:PRINT " ":LOCATE 25,61:INPUT "",X$ 230 IF X$ = "" THEN 300 240 LOCATE 25,64:PRINT " ":LOCATE 25,64:INPUT "",Y$ 250 DATE$ = X$+"-"+Y$+"-84" 260 LOCATE 25,72:PRINT " ":LOCATE 25,72:INPUT "",Z$ 270 IF Z$ = "" THEN 300 280 LOCATE 25,75:PRINT " ":LOCATE 25,75:INPUT "",W$ 290 TIME$ = Z$+":"+W$ 300 '====================== MAIN MENU ======================================= 310 LOCATE 25,1:PRINT "Load Save Return Modem ChgDate Basic Quit ";DATE$;" ";TIME$ 320 X$ = INKEY$ 330 IF X$ = "" THEN 310 340 IF X$ <> "q" AND X$ <> "Q" THEN 380 350 IF X$ = "q" OR X$ = "Q" THEN LOCATE 25,45:PRINT "Are you sure?":Q$=INKEY$ 360 IF Q$ = "" THEN 350 370 IF Q$ = "y" OR Q$ = "Y" THEN SYSTEM 380 IF X$= "l" OR X$ = "L" THEN GOSUB 460 385 IF X$ ="s" OR X$ = "S" THEN GOSUB 1030 390 IF X$= "r" OR X$ = "R" THEN 490 400 IF X$= "c" OR X$ = "C" THEN GOSUB 220 420 IF X$= "B" OR X$ = "b" THEN CLS:GOSUB 3350:KEY ON:END 430 IF X$= "m" OR X$ = "M" THEN RUN"pc-talk 440 GOTO 310 450 IF TC = 0 THEN 590 460 '=========================== MAIN DISPLAY ============================== 470 KEY OFF:COLOR 7,0 480 GOTO 780 490 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE P/BV EYld DYld %Ch Com Brk= %Por Net " 500 PRINT "-----|-|-----|-----|-----|-----|----|--|----|----|----|---|---|-----|-----|-----" 510 FOR I = 1 TO M:PO = I+2:TA=0:TB=0 520 K = COUNT1(I) 530 GOSUB 2260:NEXT I 540 IF TC = 0 THEN 590 550 FOR I = 1 TO M:K = COUNT1(I):LOCATE I+2,69:PRINT USING " ###";((CURPR(K)*NUMSH(K))/TT)*100:NEXT I:M = 0 560 PRINT:PRINT USING " Cost: #####.##";TC:PRINT USING " Cur Val: #####.##";TT;:LOCATE ,40:PRINT "Portfolio: ";RK$;" ";DT$:PRINT USING " Comissn: #####.##";MC:PRINT USING " Net Val: #####.##";TT-MC:PRINT USING " Net Chg: #####.##";TT-(MC+TC) 570 PC = (((TT-MC)/TC)*100)-100 580 PRINT USING " Pct Chg: #####.##";PC;:PRINT"%" 590 TT=0:TC=0:MC=0 600 GOSUB 4080:LOCATE 25,1:PRINT "Add Chg LPrint Week Individual NewDat Port Selection Mkt Files Quit " 610 X$=INKEY$ 620 IF X$="" THEN 610 640 IF X$ = "f" OR X$ = "F" THEN CLS:FILES:GOTO 600 660 IF X$ = "p" OR X$ = "P" THEN 2200 662 IF X$ = "m" OR X$ = "M" THEN GOSUB 3970 665 IF X$ = "l" OR X$ = "L" THEN GOSUB 3450 670 IF X$ = "a" OR X$="A" THEN I=NU+1:NU=NU+1:CLS:GOTO 3140 690 IF X$ = "c" OR X$ = "C" THEN GOSUB 2820 700 IF X$ = "w" OR X$ = "W" THEN 1180 710 IF X$ = "z" OR X$ = "Z" THEN 3450 720 IF X$ = "n" OR X$ = "N" THEN 910 740 IF X$ ="s" OR X$ = "S" THEN 2070 750 IF X$ ="q" OR X$ = "Q" THEN 90 760 IF X$ ="i" OR X$ = "I" THEN 1230 770 GOTO 600 780 '================================ I/O OPERATIONS ===================== 790 GOSUB 4080:PRINT "Portfolio NewPort Files Quit " 794 RN$=INKEY$:IF RN$ = "" THEN 794 796 IF RN$ = "p" OR RN$="P" THEN RK$ = "stoktrak":GOTO 830 800 IF RN$="q" OR RN$ = "Q" THEN RETURN 810 IF RN$ = "f" OR RN$="F" THEN CLS:FILES:GOTO 790 815 IF RN$ = "n" OR RN$="N" THEN GOSUB 4080:INPUT "New portfolio name. RTN aborts: ",RN$: IF RN$ <> "" THEN 820 817 GOTO 790 820 RK$ = RN$ 830 OPEN RK$+".NUM" FOR INPUT AS #2:INPUT #2,NU,DT$:CLOSE 840 OPEN RK$+".POR" FOR INPUT AS # 1 850 'IF EOF(1) THEN 890 860 FOR A = 1 TO NU 870 INPUT #1,TIK$(A),NAM$( A),BUY(A),CURPR(A),SALESH(A),EPS(A),NUMSH(A),BVSH(A),O1(A) 880 INPUT #1,O2(A),O3(A),O4(A),W1(A),W2(A),W3(A),W4(A),W5(A),W6(A),W7(A),W8(A),W9(A),WA(A),V1(A),V2(A),V3(A),V4(A),CURVOL(A),TIMELY(A),SAFE(A),YEARHI(A),YEARLO(A),DIVSH(A),PEAVG(A) 890 NEXT A 892 OPEN RK$+".mkt" FOR INPUT AS #3:FOR I = 1 TO 10:INPUT #3,HISTDAT$(I),DOW(I),VOL(I),UPS(I),DNS(I),HI(I),LO(I),BLK(I):NEXT I:CLOSE 900 CLOSE: GOTO 600 910 '========================== NEW FIGURES ============================== 920 GOSUB 4080:INPUT "NewData file. RTN aborts: ";Q$ 930 IF Q$ ="" THEN 1020 940 ON ERROR GOTO 90 950 OPEN RK$+".NUM" FOR INPUT AS #2:INPUT #2,NU,DT$:CLOSE 960 OPEN Q$ FOR INPUT AS # 3 970 FOR I=1 TO NU:INPUT #3,TIK$(I),TEMPCURVOL(I),TEMPCURPR(I) 980 O1(I)=O2(I):O2(I)=O3(I):O3(I)=O4(I):O4(I)=CURPR(I):V1(I)=V2(I):V2(I)=V3(I):V3(I)=V4(I):V4(I)=CURVOL(I) 990 CURPR(I)=TEMPCURPR(I):CURVOL(I)=TEMPCURVOL(I) 1000 NEXT I 1020 GOTO 490 1030 '========================== OUTPUT =================================== 1035 IF RK$="" THEN X$="n":GOSUB 4080:GOTO 1070 1040 GOSUB 4080:PRINT "Save as ";RK$;" (Y/N): " 1050 X$=INKEY$:IF X$="" THEN 1050 1060 DT$=DATE$+" "+TIME$ 1069 IF X$ = "y" OR X$ ="Y" THEN 1100 1070 LOCATE 25,1:INPUT "Enter new name. RTN aborts: ",RN$ 1090 IF RN$="" THEN 1170 1095 RK$=RN$ 1100 OPEN RK$+".POR" FOR OUTPUT AS # 1 1110 FOR A = 1 TO NU 1120 WRITE #1,TIK$(A),NAM$( A),BUY(A),CURPR(A),SALESH(A),EPS(A),NUMSH(A),BVSH(A),O1(A) 1130 WRITE #1,O2(A),O3(A),O4(A),W1(A),W2(A),W3(A),W4(A),W5(A),W6(A),W7(A),W8(A),W9(A),WA(A),V1(A),V2(A),V3(A),V4(A),CURVOL(A),TIMELY(A),SAFE(A),YEARHI(A),YEARLO(A),DIVSH(A),PEAVG(A) 1140 NEXT A 1150 OPEN RK$+".NUM" FOR OUTPUT AS #2:WRITE #2,NU,DT$:CLOSE 1160 OPEN RK$+".MKT" FOR OUTPUT AS #3:FOR I = 1 TO 10:WRITE #3,HISTDAT$(I),DOW(I),VOL(I),UPS(I),DNS(I),HI(I),LO(I),BLK(I):NEXT I:CLOSE 1170 RETURN 1180 '============================ SAVE THE WEEK PRICE ======================= 1190 FOR I = 1 TO NU:W1(I)=W2(I):W2(I)=W3(I):W3(I)=W4(I):W4(I)=W5(I):W5(I)=W6(I):W6(I)=W7(I):W7(I)=W8(I):W8(I)=W9(I):W9(I)=WA(I):WA(I)=CURPR(I):NEXT I 1200 LOCATE 25,68:COLOR 14,0:PRINT "Set. [RTN]" 1210 COLOR 7,0 1220 GOTO 600 1230 '====================== 1 STOCK, 1 PAGE DISPLAY ========================== 1240 FOR I = 1 TO NU 1250 CLS:LOCATE 25,1 1260 PRINT "Number Last Next Tickers Quit ";I;"OF";NU;"Stocks." 1270 LOCATE 1,1:PRINT NAM$(I) 1280 LOCATE 1,25:PRINT TIK$(I) 1290 LOCATE 1,32:PRINT NUMSH(I);" Shs @ ";BUY(I) 1300 LOCATE 1,55:PRINT "Cost: ";BUY(I)*NUMSH(I) 1310 IF MOVAVG(I) < CURPR(I) THEN COLOR 0,4:LOCATE 1,25:PRINT TIK$(I);"=":COLOR 7,0 1320 PRINT 1330 PRINT USING "Current: #####.##";CURPR(I) 1340 PRINT USING " Value: #####.##";CURPR(I)*NUMSH(I) 1350 PRINT USING " Change: #####.##";CURPR(I)-BUY(I) 1360 PRINT USING "Percent: #####.##";((CURPR(I)/BUY(I))*100)-100 1370 PRINT USING "Tot Chg: #####.##";(CURPR(I)*NUMSH(I))-(BUY(I)*NUMSH(I)) 1380 LOCATE 3,25:PRINT "Volume 4 days: ";:PRINT USING "#####00";V1(I);V2(I);V3(I);V4(I) 1390 LOCATE ,25:PRINT "Close 4 days: ";:PRINT USING " ###.##";O1(I);O2(I);O3(I);O4(I) 1400 LOCATE 23,1:COLOR 7,2:PRINT " Latest ten wks: ";:PRINT USING " ##.##";W1(I);W2(I);W3(I);W4(I);W5(I);W6(I);W7(I);W8(I);W9(I);WA(I);:PRINT" ":COLOR 7,0 1410 LOCATE 6,25:PRINT USING "Buy Com: ####.##";28 + ((NUMSH(I)*BUY(I))*(0.8/100)) 1420 LOCATE 7,25:PRINT USING "Sell Com: ####.##";28 + ((NUMSH(I)*CURPR(I))*(0.8/100)) 1430 LOCATE 7,50:PRINT USING "Net: #####.##";((CURPR(I)*NUMSH(I))-56 - ((NUMSH(I)*CURPR(I))*(0.8/100))-((NUMSH(I)*BUY(I))*(0.8/100)))-(BUY(I)*NUMSH(I)) 1440 LOCATE 9,1 1450 PRINT USING "Chg today: ##.##";CURPR(I)-O4(I) 1460 IF CURVOL(I) > V4(I) THEN COLOR 0,4 1470 PRINT USING "Vol today: #####00";CURVOL(I):COLOR 7,0 1480 LOCATE 9,25: PRINT USING "Chg this wk: ###.##";CURPR(I)-WA(I) 1490 LOCATE 10,25: PRINT USING "% this week: ###.##";((CURPR(I)/WA(I))*100)-100 1500 LOCATE 12,1 1510 PRINT USING "PSR: ##.##";CURPR(I)/SALESH(I) 1520 PRINT USING "PE: ##.##";CURPR(I)/EPS(I) 1530 PRINT USING "P/BV: ##.##";CURPR(I)/BVSH(I) 1540 PRINT USING "EPS ##.##";EPS(I) 1550 IF DIVSH(I) < 0.01 THEN PRINT "Div/share: NIL":GOTO 1570 1560 PRINT USING "Div/share: ##.##";DIVSH(I) 1570 PRINT USING "Earn Yield: ##.##%";(EPS(I)/CURPR(I))*100 1580 IF DIVSH(I) < 0.01 THEN PRINT "Div Yield: NIL":GOTO 1600 1590 PRINT USING "Div Yield: ##.##%";(DIVSH(I)/CURPR(I))*100 1600 LOCATE 12,25: PRINT USING "Sales/share: ###.##";SALESH(I) 1610 LOCATE ,25:PRINT USING "Book Val/sh: ##.##";BVSH(I) 1620 LOCATE ,25:PRINT "Timeliness: ";TIMELY(I) 1630 LOCATE ,25:PRINT "Safety: ";SAFE(I) 1640 LOCATE ,25:PRINT USING "Year High: ##.##";YEARHI(I) 1650 LOCATE ,25:PRINT USING "Year Low: ##.##";YEARLO(I) 1660 MOVAVG(I) = (W1(I)+W2(I)+W3(I)+W4(I)+W5(I)+W6(I)+W7(I)+W8(I)+W9(I)+WA(I))/10 1670 LOCATE ,25:PRINT USING "10 Wk Avg: ##.##";MOVAVG(I) 1680 RO = 11.5/10.1: '======11.5=BzWk ROE 1200 co.|10.1=VLine PE 4/18/84 ======= 1690 LOCATE 12,50: PRINT USING "ROE: ###.##";(EPS(I)/BVSH(I))*100 1700 IF ((EPS(I)/BVSH(I))*100)/(CURPR(I)/EPS(I)) =< (RO * 0.75) THEN COLOR 3,0 1710 IF ((EPS(I)/BVSH(I))*100)/(CURPR(I)/EPS(I)) => (RO * 1.5) THEN COLOR 0,5 1720 LOCATE ,50: PRINT USING "ROE/PE: ###.##";((EPS(I)/BVSH(I))*100)/(CURPR(I)/EPS(I)):COLOR 7,0 1730 LOCATE ,50: PRINT USING "MKT ROE/PE: ###.##";RO 1740 PBV=((DIVSH(I)/CURPR(I))*100)+(((EPS(I)-DIVSH(I))/BVSH(I))*100)/(CURPR(I)/EPS(I)):IF PBV => 2 THEN COLOR 0,5 1750 IF PBV < 2 THEN COLOR 3,0 1760 LOCATE ,50: PRINT USING "Buy Value: ###.##";PBV:COLOR 7,0 1770 LOCATE ,50: PRINT USING "5Yr Avg PE: ###.##";PEAVG(I) 1780 XB = PEAVG(I)/10.12 : XZ = (CURPR(I)/EPS(I))/9.8:REM 10.12=5 YR DJ PE 9.8 = DJ PE 4/5/84 1790 IF XB =< 0 THEN LOCATE ,50:PRINT "Chg Rel PE: NIL":GOTO 1830 1800 RELPE = ((XZ/XB)*100)-100:IF RELPE < 0 THEN COLOR 0,5 1810 IF RELPE => 0 THEN COLOR 3,0 1820 LOCATE ,50: PRINT USING "Chg Rel PE: ###.##";RELPE;:COLOR 7,0:PRINT"%" 1830 LOCATE ,50: PRINT USING "5Yr PE/DJ PE:###.##";XB 1840 LOCATE ,50: PRINT USING "Cur PE/DJ PE:###.##";XZ 1850 PRINT:PRINT 1860 X$=INKEY$:IF X$="" THEN 1860 1870 IF X$ <> "t" AND X$ <> "T" THEN 1950 1880 IF X$ = "t" OR X$ = "T" THEN LOCATE 25,1:PRINT "Last Next Select Quit ":FOR S = 1 TO NU:LOCATE 25,53:COLOR 0,5:PRINT USING " ## ";S;:PRINT USING "\ \";TIK$(S):COLOR 7,0 1890 TK$=INKEY$:IF TK$="" THEN 1890 1900 IF TK$ = "s" OR Q$="S" THEN I=S-1:GOTO 2020 1901 IF TK$ = "q" OR Q$="Q" THEN LOCATE 25,1:PRINT"Number Last Next Tickers Quit":GOTO 1860 1910 IF TK$ <> "l" AND S = NU THEN S = 0:GOTO 1940 1920 IF TK$ = "l" AND S = 1 THEN S = NU - 1:GOTO 1940 1930 IF TK$ = "l" THEN S = S - 2 1940 NEXT S 1950 IF X$ = "q" OR X$ = "Q" THEN 2060 1960 IF X$ = "l" AND I = 1 THEN I = NU - 1:GOTO 2020 1970 IF Q$ = "+" AND I = NU THEN I = 0:GOTO 2960 1980 IF X$ = "l" THEN I = I-2:GOTO 2020 1990 IF X$ = "a" OR X$ = "A" THEN GOSUB 3390:GOTO 1860 2000 IF VAL(X$) > 0 AND VAL(X$) <=9 THEN Y$=INKEY$:GOTO 2030 2010 IF I= NU THEN I = 0 2020 NEXT I 2030 IF Y$="" THEN 2000 2040 I = VAL(X$+Y$)-1:IF I+1 > NU THEN 1860 2050 GOTO 2020 2060 GOTO 490 2070 '===================== SOMETHING WICKED ============================== 2080 GOSUB 4080 2090 PRINT "Last Next Select Display Of";NU;"Stocks." 2100 M=0 2110 FOR I = 1 TO NU:LOCATE 25,45:COLOR 0,5:PRINT USING " ## ";I;:PRINT USING "\ \";TIK$(I):COLOR 7,0 2120 Q$=INKEY$:IF Q$="" THEN 2120 2130 IF Q$ = "d" OR Q$="D" THEN 490 2140 IF Q$ = "s" OR Q$="S" THEN M=M+1:COUNT1(M)=I:LOCATE 2+M,1:COLOR 0,2:PRINT USING "\ \";TIK$(I):COLOR 7,0:IF M = 14 THEN 490 2150 IF Q$ <> "l" AND I = NU THEN I = 0:GOTO 2180 2160 IF Q$ = "l" AND I = 1 THEN I = NU - 1:GOTO 2180 2170 IF Q$ = "l" THEN I = I - 2 2180 NEXT I 2190 GOTO 490 2200 '=========================== BPORT DISPLAY ============================== 2210 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE P/BV EYld DYld %Ch Com Brk= Net " 2220 PRINT "-----|-|-----|-----|-----|-----|----|--|----|----|----|---|---|-----|-----|-----":LOCATE 25,45:PRINT "Portfolio: ";LEFT$(RK$,5)+" "+DT$ 2230 FOR K = 1 TO NU:PO = K+2:TA=0:TB=0 2240 IF K > 20 AND K <= 40 THEN PO = K - 18 2250 IF K >= 41 AND K < 60 THEN PO = K - 38 2260 MOVAVG(K) = (W1(K)+W2(K)+W3(K)+W4(K)+W5(K)+W6(K)+W7(K)+W8(K)+W9(K)+WA(K))/10 2270 LOCATE PO,1:PRINT TIK$(K) 2280 IF MOVAVG(K) < CURPR(K) THEN COLOR 0,5 2290 LOCATE PO,7 :PRINT USING "#";TIMELY(K):COLOR 7,0 2300 LOCATE PO,9:PRINT USING "##.##";BUY(K) 2310 IF CURPR(K) > O4(K) THEN COLOR 14,0 2320 IF CURPR(K) < O4(K) THEN COLOR 3,0 2330 IF CURPR(K) > (O4(K)*1.04) THEN COLOR 0,5 2340 IF CURPR(K) < (O4(K)*0.96) THEN COLOR 0,1 2350 LOCATE PO,15:PRINT USING "##.##";CURPR(K) 2360 LOCATE PO,21:PRINT USING "##.##";CURPR(K)-O4(K):COLOR 7,0 2370 VOLAVG(K)=(V1(K)+V2(K)+V3(K)+V4(K)+CURVOL(K))/5 2380 IF CURVOL(K) > VOLAVG(K) THEN COLOR 14,0 2390 IF CURVOL(K) > VOLAVG(K)*1.75 THEN COLOR 0,5 2400 IF CURVOL(K) < VOLAVG(K) THEN COLOR 3,0 2410 IF CURVOL(K) < VOLAVG(K) *0.5 THEN COLOR 0,1 2420 LOCATE PO,27:PRINT USING "#####";CURVOL(K):COLOR 7,0 2425 IF CURPR(K)/SALESH(K) < 1 THEN COLOR 0,5 2426 IF CURPR(K)/SALESH(K) > 1 THEN COLOR 3,0 2430 LOCATE PO,33:PRINT USING "#.##";CURPR(K)/SALESH(K):COLOR 7,0 2440 PERATIO(K)=CURPR(K)/EPS(K):IF PERATIO(K) > 99 THEN PERATIO(K)=99 2450 LOCATE PO,37:PRINT USING " ##";PERATIO(K) 2460 IF CURPR(K)/BVSH(K) < 1 THEN COLOR 0,5 2470 IF CURPR(K)/BVSH(K) > 1 THEN COLOR 3,0 2480 LOCATE PO,41:PRINT USING "##.#";CURPR(K)/BVSH(K):COLOR 7,0 2490 LOCATE PO,45:PRINT USING " ##.#";(EPS(K)/CURPR(K))*100 2500 BUYCOM(K) = 28 + ((NUMSH(K)*BUY(K))*(0.8/100)) 2510 SELCOM(K) = 28 + ((NUMSH(K)*CURPR(K))*(0.8/100)) 2520 TOTCOM(K)=BUYCOM(K)+SELCOM(K) 2530 BRKEVEN(K)=CURPR(K)+(TOTCOM(K)/NUMSH(K)) 2540 IF DIVSH(K) <= 0.01 THEN LOCATE PO,50:PRINT " NIL":GOTO 2560 2550 LOCATE PO,50 :PRINT USING " ##.#";(DIVSH(K)/CURPR(K))*100 2560 PCTCHG(K)=INT((CURPR(K)/BUY(K))*100)-100 2570 IF PCTCHG(K) <= -15 THEN COLOR 0,2 2580 IF PCTCHG(K) >= 15 THEN COLOR 0,5 2590 LOCATE PO,56:PRINT USING "###";PCTCHG(K):COLOR 7,0 2600 LOCATE PO,59:PRINT USING " ###";TOTCOM(K) 2610 LOCATE PO,63 :PRINT USING " ##.##";BRKEVEN(K) 2620 IF CURPR(K) > BUY(K)+(TOTCOM(K)/NUMSH(K)) THEN COLOR 14,0 2630 IF CURPR(K) >(BUY(K)+(TOTCOM(K)/NUMSH(K)))*1.15 THEN COLOR 0,5 2640 IF CURPR(K) < (BUY(K)+(TOTCOM(K)/NUMSH(K))) THEN COLOR 3,0 2650 IF CURPR(K) < (BUY(K)+(TOTCOM(K)/NUMSH(K)))*0.85 THEN COLOR 0,2 2660 LOCATE PO,76:PRINT USING "#####";(CURPR(K)*NUMSH(K))-(BUY(K)*NUMSH(K))-TOTCOM(K):COLOR 7,0 2670 TA = CURPR(K)*NUMSH(K):TT = TA + TT: TB = BUY(K)*NUMSH(K):TC = TB + TC:TA=0:TB=0:MC=MC+ TOTCOM(K) 2680 IF M <> 0 THEN RETURN 2690 IF K = 20 THEN GOSUB 2740 2700 IF K = 40 THEN GOSUB 2740 2710 NEXT K 2720 TT=0:TC=0:MC=0 2730 GOTO 600 2740 TT=0:TC=0:MC=0 2750 LOCATE 25,1:PRINT"Rtn/Q: ";:COLOR 14,0:PRINT "Up ":LOCATE 25,12:COLOR 0,5:PRINT"4%P":LOCATE 25,16:PRINT"75%V":LOCATE 25,21:PRINT"15%N";:COLOR 3,0:PRINT" Down ";:COLOR 0,1:PRINT"4%P":LOCATE 25,35:COLOR 0,1:PRINT"50%V":LOCATE 25,40:PRINT"15%N" 2760 COLOR 7,0 2770 Q$=INKEY$:IF Q$="" THEN 2770 2780 IF Q$ = "q" OR Q$ = "Q" THEN 600 2790 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE P/BV EYld DYld %Ch Com Brk= Net " 2800 PRINT "-----|-|-----|-----|-----|-----|----|--|----|----|----|---|---|-----|-----|-----":LOCATE 25,45:PRINT "Portfolio: ";LEFT$(RK$,5)+" "+DT$ 2810 RETURN 2820 '======================== CHANGE THE FUNDAMENTALS ==================== 2830 'CLS:LOCATE 25,1 2840 ' 2850 ' 2860 ' 2870 GOSUB 4080:PRINT "Last Next Select Add Quit At stock, RTN=No Chg. ";NU;" Stocks. " 2880 FOR I = 1 TO NU:LOCATE 25,67:COLOR 0,5:PRINT USING " ## ";I;:PRINT USING "\ \";TIK$(I):COLOR 7,0 2890 Q$=INKEY$:IF Q$="" THEN 2890 2900 IF Q$ = "q" OR Q$="Q" THEN 490 2910 IF Q$ = "s" OR Q$="S" THEN 2970 2920 IF Q$ = "a" OR Q$="A" THEN I=NU+1:NU=NU+1:GOTO 3140 2930 IF Q$ <> "l" AND I = NU THEN I = 0:GOTO 2960 2940 IF Q$ = "l" AND I = 1 THEN I = NU - 1:GOTO 2960 2950 IF Q$ = "l" THEN I = I - 2 2960 NEXT I 2970 IF I = 0 THEN 3300 2980 IF I > NU THEN 2880 2990 CLS:LOCATE 1,1 3000 PRINT"Ticker: ";TIK$(I) 3010 PRINT"Ex & Name: ";NAM$(I) 3020 PRINT"Buy Price: ";BUY(I) 3030 PRINT"Cur Price: ";CURPR(I) 3040 PRINT"Num shares: ";NUMSH(I) 3050 PRINT"5 Yr Avg PE: ";PEAVG(I) 3060 PRINT"Sales/share: ";SALESH(I) 3070 PRINT"Earn/share: ";EPS(I) 3080 PRINT"Book Val/sh: ";BVSH(I) 3090 PRINT"Dividend/Sh: ";DIVSH(I) 3100 PRINT"Timeliness: ";TIMELY(I) 3110 PRINT"Safety: ";SAFE(I) 3120 PRINT"Year High: ";YEARHI(I) 3130 PRINT"Year Low: ";YEARLO(I) 3140 LOCATE 1,40:INPUT "Ticker: ",N1$:IF N1$ <> "" THEN TIK$(I)=N1$ 3150 LOCATE ,40:INPUT "Ex/Name:",N2$:IF N2$ <> "" THEN NAM$(I)=N2$ 3160 LOCATE ,40:INPUT "Buy Pr :",N1: IF N1 <> 0 THEN BUY(I) = N1 3170 LOCATE ,40:INPUT "Cur Pr :",LN: IF LN <> 0 THEN CURPR(I) = LN 3180 LOCATE ,40:INPUT "Num Sh :",N0: IF N0 <> 0 THEN NUMSH(I) = N0 3190 LOCATE ,40:INPUT "5 Yr PE:",OP: IF OP <> 0 THEN PEAVG(I) = OP 3200 LOCATE ,40:INPUT "Sale/Sh:",N2: IF N2 <> 0 THEN SALESH(I) = N2 3210 LOCATE ,40:INPUT "Earn/Sh:",N3: IF N3 <> 0 THEN EPS(I) = N3 3220 LOCATE ,40:INPUT "BV/Sh: ",N4: IF N4 <> 0 THEN BVSH(I) = N4 3230 LOCATE ,40:INPUT "Div/Sh: ",N9: IF N9 <> 0 THEN DIVSH(I) = N9 3240 LOCATE ,40:INPUT "Timely: ",N5: IF N5 <> 0 THEN TIMELY(I) = N5 3250 LOCATE ,40:INPUT "Safety: ",N6: IF N6 <> 0 THEN SAFE(I) = N6 3260 LOCATE ,40:INPUT "Year Hi:",N7: IF N7 <> 0 THEN YEARHI(I) = N7 3270 LOCATE ,40:INPUT "Year Lo:",N8:IF N8 <> 0 THEN YEARLO(I) = N8 3280 LOCATE ,40:INPUT "10 wks Y/N:",Q$:IF Q$ = "y" OR Q$ = "Y" THEN 3310 3290 GOTO 2870 3300 RETURN 3310 FOR WW = 1 TO 10: LOCATE 23,28:PRINT" ":LOCATE 23,1:INPUT "Weekly close, recent last: ",M0(WW):NEXT WW 3320 W1(I)=M0(1):W2(I)=M0(2):W3(I)=M0(3):W4(I)=M0(4):W5(I)=M0(5):W6(I)=M0(6):W7(LIST 3230- 3330 LOCATE 23,1:PRINT SPACE$(40) 3340 GOTO 2870 3350 '====================== RESET FUNCTION KEYS ============================== 3360 KEY 1,"LIST "+CHR$(13):KEY 5,"EDIT ":KEY 6,"CLS"+CHR$(13):KEY 7,"List " 3370 KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD "+CHR$(34):KEY 4,"SAVE "+CHR$(34):KEY 8,"list 480 - "+CHR$(13): KEY 9,"list 2140 -"+CHR$(13):KEY 10,"list 4000 -"+CHR$(13) 3380 RETURN 3390 '====================== AVERAGE PE RATIO ALL STOCKS ================= 3400 AV=0:AV1=0:FOR B = 1 TO NU:AV = CURPR(B)/EPS(B):IF AV < 1 OR AV > 200 THEN AV = 10:GOTO 3420 3410 AV1 = AV + AV1:AV = 0 3420 NEXT B:AVGPE = AV1/NU 3430 LOCATE 23,1:PRINT USING "Avg PE: ##.##";AVGPE 3440 RETURN 3450 '======================= PRINT THE PORTFOLIO ======================= 3460 LPRINT "Portfolio, date saved: ";RK$;" ";DT$;" Printout date: ";DATE$:LPRINT 3470 LPRINT "Tick T Buy Cur Chg V00 PSR PE B/BV EYld DYld %Ch Com Brk= Net TK " 3480 LPRINT "-----|-|-----|-----|-----|-----|----|--|----|----|----|---|---|-----|-----|-----" 3490 FOR K = 1 TO NU:PO = K+2:TA=0:TB=0 3500 MOVAVG(K) = (W1(K)+W2(K)+W3(K)+W4(K)+W5(K)+W6(K)+W7(K)+W8(K)+W9(K)+WA(K))/10 3510 LPRINT TIK$(K) TAB(6); 3520 IF MOVAVG(K) < CURPR(K) THEN LPRINT"DEFDBL"; 3530 IF MOVAVG(K) >= CURPR(K) THEN LPRINT"SWAP"; 3540 LPRINT USING "#";TIMELY(K); 3550 LPRINT USING " ##.##";BUY(K); 3560 LPRINT USING " ##.##";CURPR(K); 3570 IF CURPR(K) >= (O4(K)*1.04) THEN LPRINT "DEFDBL"; 3580 IF CURPR(K) <= (O4(K)*0.96) THEN LPRINT "SWAP"; 3590 IF CURPR(K) > (O4(K)*0.96) AND CURPR(K) < (O4(K)*1.04) THEN LPRINT " "; 3600 LPRINT USING "##.##";CURPR(K)-O4(K); 3610 VOLAVG(K)=(V1(K)+V2(K)+V3(K)+V4(K)+CURVOL(K))/5 3620 LPRINT USING "######";CURVOL(K); 3630 IF CURVOL(K) >= VOLAVG(K)*1.75 THEN LPRINT "DEFDBL"; 3640 IF CURVOL(K) <= VOLAVG(K) *0.5 THEN LPRINT "SWAP"; 3650 IF CURVOL(K) > VOLAVG(K) *0.5 AND CURVOL(K) < VOLAVG(K)*1.75 THEN LPRINT " "; 3660 LPRINT USING "#.##";CURPR(K)/SALESH(K); 3665 IF CURPR(K)/EPS(K) > 99 THEN LPRINT " 99";:GOTO 3680 3670 LPRINT USING " ##";CURPR(K)/EPS(K); 3680 LPRINT USING " ##.#";CURPR(K)/BVSH(K); 3690 LPRINT USING " ##.#";(EPS(K)/CURPR(K))*100; 3700 BUYCOM(K) = 28 + ((NUMSH(K)*BUY(K))*(0.8/100)) 3710 SELCOM(K) = 28 + ((NUMSH(K)*CURPR(K))*(0.8/100)) 3720 TOTCOM(K)=BUYCOM(K)+SELCOM(K) 3730 BRKEVEN(K)=CURPR(K)+(TOTCOM(K)/NUMSH(K)) 3740 IF DIVSH(K) <= 0.01 THEN LPRINT " NIL";:GOTO 3760 3750 LPRINT USING " ##.#";(DIVSH(K)/CURPR(K))*100; 3760 LPRINT USING " ###";INT((CURPR(K)/BUY(K))*100)-100; 3770 LPRINT USING " ###";TOTCOM(K); 3780 LPRINT USING " ##.##";BRKEVEN(K); 3790 LPRINT USING "#####";(CURPR(K)*NUMSH(K))-(BUY(K)*NUMSH(K))-TOTCOM(K); 3800 IF CURPR(K) <= (BUY(K)+(TOTCOM(K)/NUMSH(K)))*0.85 THEN LPRINT "SWAP";:GOTO 3821 3810 IF CURPR(K) >= (BUY(K)+(TOTCOM(K)/NUMSH(K)))*1.15 THEN LPRINT "DEFDBL";:GOTO 3821 3820 LPRINT " "; 3821 RO = 11.5/10.1: '======11.5=BzWk ROE 1200 co.|10.1=VLine PE 4/18/84 ======= 3822 IF ((EPS(K)/BVSH(K))*100)/(CURPR(K)/EPS(K)) =< (RO * 0.75) THEN LPRINT " SELL":GOTO 3830 3824 IF ((EPS(K)/BVSH(K))*100)/(CURPR(K)/EPS(K)) => (RO * 1.5) THEN LPRINT " BUY":GOTO 3830 3826 LPRINT " " 3830 NEXT K: RETURN 3840 TA = CURPR(K)*NUMSH(K):TT = TA + TT: TB = BUY(K)*NUMSH(K):TC = TB + TC:TA=0:TB=0:MC=MC+ TOTCOM(K) 3850 IF M <> 0 THEN RETURN 3860 IF K = 20 THEN GOSUB 3910 3870 IF K = 40 THEN GOSUB 3910 3880 NEXT K 3890 TT=0:TC=0:MC=0 3900 GOTO 600 3910 TT=0:TC=0:MC=0 3920 LOCATE 25,1:PRINT "RTN or Quit: ":Q$=INKEY$:IF Q$="" THEN 3920 3930 IF Q$ = "q" OR Q$ = "Q" THEN 600 3940 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE B/BV EYld DYld %Ch Com Brk= Net " 3950 PRINT "-----|-|-----|-----|-----|-----|----|--|----|----|----|---|---|-----------|-----":LOCATE 25,38:PRINT "Portfolio: ";RK$;" ";DT$ 3960 RETURN 3970 '======================= MARKET AVERAGES ======================= 3972 GOSUB 4080:LOCATE 25,1:PRINT "NewData View Quit" 3973 Q$=INKEY$:IF Q$="" THEN 3973 3974 IF Q$ = "q" OR Q$ = "Q" THEN RETURN 3975 IF Q$ <> "n" AND Q$ <> "N" THEN 5000 3980 GOSUB 7000 3990 GOSUB 4080 4000 LOCATE 25,1:INPUT "Date (MTH00): ",HISTDAT$(10):GOSUB 4080 4005 LOCATE 25,1:INPUT "Dow close: ",DOW(10):GOSUB 4080 4010 LOCATE 25,1:INPUT "NYSE vol (mils): ",VOL(10):GOSUB 4080 4020 LOCATE 25,1:INPUT "Advances: ",UPS(10):GOSUB 4080 4030 LOCATE 25,1:INPUT "Declines: ",DNS(10):GOSUB 4080 4040 LOCATE 25,1:INPUT "New highs: ",HI(10):GOSUB 4080 4050 LOCATE 25,1:INPUT "New lows: ",LO(10):GOSUB 4080 4060 LOCATE 25,1:INPUT "Blocks: ",BLK(10):GOSUB 4080 4070 GOTO 5000:'RETURN 4080 LOCATE 25,1:PRINT SPACE$(80):LOCATE 25,1:RETURN 5000 '======================= MARKET PAGE ============================== 5005 CLS:PRINT:PRINT "DATE: ";:FOR I = 1 TO 10: PRINT " ";HISTDAT$(I);:NEXT I:PRINT 5010 PRINT: PRINT"CLOSE: ";:FOR I = 1 TO 10: PRINT USING " ####.#";DOW(I);:NEXT I 5020 PRINT:PRINT"VOLUME: ";:FOR I = 1 TO 10: PRINT USING " ######";VOL(I);:NEXT I 5030 PRINT:PRINT"ADVANCES:";:FOR I = 1 TO 10: PRINT USING " ######";UPS(I);:NEXT I 5040 PRINT:PRINT"DECLINES:";:FOR I = 1 TO 10: PRINT USING " ######";DNS(I);:NEXT I 5060 PRINT:PRINT"NEW HIGH:";:FOR I = 1 TO 10: PRINT USING " ######";HI(I);:NEXT I 5070 PRINT:PRINT"NEW LOW: ";:FOR I = 1 TO 10: PRINT USING " ######";LO(I);:NEXT I 5080 PRINT:PRINT"BLOCKS: ";:FOR I = 1 TO 10: PRINT USING " ######";BLK(I);:NEXT I 6000 RETURN 6009 END 7000 FOR I = 1 TO 9:HISTDAT$(I)=HISTDAT$(I+1):NEXT I 7005 FOR I = 1 TO 9:DOW(I)=DOW(I+1):NEXT I 7010 FOR I = 1 TO 9:VOL(I)=VOL(I+1):NEXT I 7020 FOR I = 1 TO 9:UPS(I)=UPS(I+1):NEXT I 7030 FOR I = 1 TO 9:DNS(I)=DNS(I+1):NEXT I 7040 FOR I = 1 TO 9:HI(I)=HI(I+1):NEXT I 7050 FOR I = 1 TO 9:LO(I)=LO(I+1):NEXT I 7060 FOR I = 1 TO 9:BLK(I)=BLK(I+1):NEXT I 7100 RETURN